package com.chiyoyo.rabbitmq.framework.config;

import org.springframework.amqp.core.ReturnedMessage;
import org.springframework.amqp.rabbit.connection.CorrelationData;

/**
 * @author chil
 */
public abstract class AbstractRabbitCallBack {


    /**
     * 保存MQ消费成功或失败后的回调方法
     *
     * @param correlationData 消息确认信息
     * @param ack             消息是否消费成功，true表示成功，false表示失败
     * @param cause           失败原因，当ack为false时该参数有效
     */
    public abstract void saveRabbitCallBack(CorrelationData correlationData, boolean ack, String cause);

    /**
     * 保存mq消息丢失方法
     *
     * @param returned 丢失的mq消息，包含消息体以及丢失原因等信息
     */
    public abstract void saveReturnedMessage(ReturnedMessage returned);
}
